Routes CodeIgniter-এ URL এবং Controller এর মধ্যে সংযোগ স্থাপন করে। এটি নির্ধারণ করে যে, কোনো নির্দিষ্ট URL রিকোয়েস্ট কীভাবে প্রক্রিয়াজাত হবে এবং কোন Controller এবং Method কল হবে। CodeIgniter-এ দুটি প্রকারের Routes রয়েছে:
- Static Routes
- Dynamic Routes
Static Routes
Static Routes ব্যবহার করে একটি নির্দিষ্ট URL এর জন্য নির্দিষ্ট Controller এবং Method কল করা হয়।
Static Route তৈরি করার নিয়ম
Static Route তৈরি করতে app/Config/Routes.php ফাইলে নিচের মতো কোড লিখতে হয়:
$routes->get('about', 'Pages::about');
উদাহরণ:
- URL:
http://localhost/about - Controller এবং Method:
Pages::about
Controller উদাহরণ:
<?php
namespace App\Controllers;
class Pages extends BaseController {
public function about() {
echo "This is the About page.";
}
}
Dynamic Routes
Dynamic Routes ব্যবহার করে URL এর অংশ হিসেবে ডাইনামিক ডেটা পাস করা যায়। এগুলো সাধারণত URL এর Parameter হিসাবে কাজ করে।
Dynamic Route তৈরি করার নিয়ম
$routes->get('product/(:any)', 'Products::details/$1');
- (:any): যে কোনো মান গ্রহণ করে।
- (:num): শুধুমাত্র সংখ্যাসূচক মান গ্রহণ করে।
- (:alpha): শুধুমাত্র অক্ষর গ্রহণ করে।
- (:segment): যে কোনো সেগমেন্ট গ্রহণ করে।
উদাহরণ:
- URL:
http://localhost/product/laptop - Controller এবং Method:
Products::details('laptop')
Controller উদাহরণ:
<?php
namespace App\Controllers;
class Products extends BaseController {
public function details($name) {
echo "Product Name: " . $name;
}
}
Multiple Parameters
$routes->get('product/(:num)/(:alpha)', 'Products::details/$1/$2');
- URL:
http://localhost/product/101/laptop - Controller:
Products::details(101, 'laptop')
Controller Method:
public function details($id, $name) {
echo "Product ID: " . $id . " | Product Name: " . $name;
}
Default Routes
CodeIgniter একটি ডিফল্ট Route সেটআপ করে, যা index() Method কল করে।
Default Route:
app/Config/Routes.php ফাইলের মধ্যে ডিফল্ট Route সংজ্ঞায়িত করা হয়:
$routes->get('/', 'Home::index');
Controller উদাহরণ:
<?php
namespace App\Controllers;
class Home extends BaseController {
public function index() {
echo "Welcome to CodeIgniter!";
}
}
Route Method এবং HTTP Verbs
CodeIgniter বিভিন্ন HTTP Verbs (GET, POST, PUT, DELETE) এর জন্য Routes নির্ধারণ করতে পারে।
GET Route
$routes->get('about', 'Pages::about');
POST Route
$routes->post('form-submit', 'Forms::submit');
PUT Route
$routes->put('update-profile', 'Users::update');
DELETE Route
$routes->delete('delete-user/(:num)', 'Users::delete/$1');
Named Routes
Named Routes ব্যবহার করে Route এর জন্য একটি নির্দিষ্ট নাম সেট করা যায়। এটি পরবর্তী সময়ে Route-কে সহজে রেফারেন্স করতে সাহায্য করে।
Named Route সেটআপ
$routes->get('dashboard', 'Admin::dashboard', ['as' => 'admin_dashboard']);
Named Route কল করা
return redirect()->route('admin_dashboard');
Route Priority
Routes ডিক্লারেশনের ক্রম গুরুত্বপূর্ণ। CodeIgniter প্রথমে ডিফাইন্ড Route পরীক্ষা করে। যদি মিলে যায়, সেটি এক্সিকিউট হয়।
উদাহরণ:
$routes->get('product/123', 'Products::special');
$routes->get('product/(:num)', 'Products::details/$1');
- URL:
http://localhost/product/123→Products::specialকল হবে। - URL:
http://localhost/product/456→Products::details/$1কল হবে।
Route Filters
Routes এর সাথে Filters যোগ করে ডেটা যাচাই বা Middleware যুক্ত করা যায়।
Filter যুক্ত করা:
$routes->get('admin', 'Admin::index', ['filter' => 'auth']);
সারসংক্ষেপ
CodeIgniter-এ Static এবং Dynamic Routes ব্যবহার করে অ্যাপ্লিকেশনের URL গুলি কার্যকরভাবে পরিচালনা করা যায়। সঠিক Routes সেটআপ করলে অ্যাপ্লিকেশন আরও মডুলার এবং রক্ষণাবেক্ষণযোগ্য হয়। Static Routes নির্দিষ্ট পেজের জন্য এবং Dynamic Routes ডাইনামিক ডেটা পাসের জন্য আদর্শ।